<?php
//error_reporting(E_ALL | E_STRICT);
//ini_set('display_errors', 'on');

class Admin_TablasController extends Zend_Controller_Action {
    
    private $_referenciasDao;
    private $_flashMessenger;
    
    public function init() {
         $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()) {
            if (!empty($auth->getIdentity()->id)) {
                $usuarioDao = new Doctrine_Model_UsuariosDoctrineDao();
                $this->view->usuario = $usuarioDao->obtenerPorId($auth->getIdentity()->id);
            }
        } else {
            $this->_helper->redirector('index', 'login', 'admin');
        }
        $this->_referenciasDao = new Doctrine_Model_ReferenciasDoctrineDao();
        
        $this->_helper->layout()->setLayout("layout_admin");
        $this->_flashMessenger = $this->_helper->getHelper('Mensaje');
        
        
        
        $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
        $unTipoInforme->setVisible(1);
        $this->view->tiposInforme = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_TipoInforme");
        $this->view->unTipoInforme = $unTipoInforme;
        
        $unaPublicidad = new Doctrine_Model_Entities_Publicidad();
        $unaPublicidad->setVisible(1);
        $this->view->publicidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Publicidad");
        $this->view->unaPublicidad = $unaPublicidad;
        
        $unaLocalidad = new Doctrine_Model_Entities_Localidad();
        $unaLocalidad->setVisible(1);
        $this->view->localidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Localidad");
        $this->view->unaLocalidad = $unaLocalidad;
        
        $unaNacionalidad = new Doctrine_Model_Entities_Nacionalidad();
        $unaNacionalidad->setVisible(1);
        $this->view->nacionalidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Nacionalidad");
        $this->view->unaNacionalidad = $unaNacionalidad;
        
        $unaCategoriaMovimiento = new Doctrine_Model_Entities_CategoriaMovimiento();
        $unaCategoriaMovimiento->setVisible(1);
        $this->view->categoriaMovimientos = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_CategoriaMovimiento");
        $this->view->unaCategoriaMovimiento = $unaCategoriaMovimiento;
        
    }

    public function indexAction() {
        $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
        $unTipoInforme->setVisible(1);
        $this->view->tiposInforme = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_TipoInforme");
        $this->view->unTipoInforme = $unTipoInforme;
        
        $unaPublicidad = new Doctrine_Model_Entities_Publicidad();
        $unaPublicidad->setVisible(1);
        $this->view->publicidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Publicidad");
        $this->view->unaPublicidad = $unaPublicidad;
        
        $unaLocalidad = new Doctrine_Model_Entities_Localidad();
        $unaLocalidad->setVisible(1);
        $this->view->localidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Localidad");
        $this->view->unaLocalidad = $unaLocalidad;
        
        $unaNacionalidad = new Doctrine_Model_Entities_Nacionalidad();
        $unaNacionalidad->setVisible(1);
        $this->view->nacionalidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Nacionalidad");
        $this->view->unaNacionalidad = $unaNacionalidad;
        
        $this->view->tab_activo = "tipos_informes";
        
        $this->render("tablas");
    }
    
    public function tipoinformeAction() {
        
        $this->view->tab_activo = "tipos_informes";
        
        $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
        $unTipoInforme->setVisible(1);
        
        if ($this->getRequest()->isPost()) {
            $id = $this->getRequest()->getParam("id");
            $descripcion = $this->getRequest()->getParam("tipo_informe_descripcion");
            $visible = 0;
            if ($this->getRequest()->getParam("tipo_informe_visible")) $visible = 1;
            if (!empty($id)) :
                /* EDITAR */
                $unTipoInforme = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_TipoInforme", $id);                
            endif;
            
            $unTipoInforme->setDescripcion($descripcion);
            $unTipoInforme->setVisible($visible);
            if (empty($id)){
                if ($this->_referenciasDao->existe("Doctrine_Model_Entities_TipoInforme",$descripcion)){
                    $this->_flashMessenger->addSuccess("La descripcion ya existe");
                    } else {
                        if ($this->_referenciasDao->guardar($unTipoInforme)) :
                            $this->_flashMessenger->addSuccess("Agregado");
                        else :
                            $this->_flashMessenger->addError('Error');
                        endif;
                    }
            } else {
                 if ($this->_referenciasDao->guardar($unTipoInforme)) {
                        $this->_flashMessenger->addSuccess("Actualizado");
                   } 
            }
        } else {
            $id = $this->getRequest()->getParam("id");
            $accion = $this->getRequest()->getParam("accion");
            if ($id) :
                $unTipoInforme = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_TipoInforme", $id);
                if ($unTipoInforme && $accion == "eliminar") :
                    $this->_referenciasDao->eliminar("Doctrine_Model_Entities_TipoInforme", $unTipoInforme);
                    unserialize($unTipoInforme);
                    $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
                    $unTipoInforme->setVisible(1);
                endif;
            endif;
        }
        
        
        $this->view->tiposInforme = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_TipoInforme");
        $this->view->unTipoInforme = $unTipoInforme;
        
        $this->render("tablas");
    }
    
    public function publicidadAction() {
        
        $this->view->tab_activo = "publicidades";
        
        $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
        $unTipoInforme->setVisible(1);
        $unaPublicidad = new Doctrine_Model_Entities_Publicidad();
        $unaPublicidad->setVisible(1);
        $unaLocalidad = new Doctrine_Model_Entities_Localidad();
        $unaLocalidad->setVisible(1);
        $unaNacionalidad = new Doctrine_Model_Entities_Nacionalidad();
        $unaNacionalidad->setVisible(1);

        
        if ($this->getRequest()->isPost()) :
            $id = $this->getRequest()->getParam("publicidad_id");
            $descripcion = $this->getRequest()->getParam("publicidad_descripcion");
            $visible = 0;
            if ($this->getRequest()->getParam("publicidad_visible"))
                $visible = 1;
            
            if ($id) :
                /* EDITAR */
                $unaPublicidad = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_Publicidad", $id);                
            endif;
            
            $unaPublicidad->setDescripcion($descripcion);
            $unaPublicidad->setVisible($visible);

            if ($this->_referenciasDao->guardar($unaPublicidad)) :
                if ($id) :
                    $this->_flashMessenger->addSuccess("Actualizado");
                else :
                    $this->_flashMessenger->addSuccess("Agregado");
                endif;
            else :
                $this->_flashMessenger->addError('Error');
            endif;
        else :
            $id = $this->getRequest()->getParam("publicidad_id");
            $accion = $this->getRequest()->getParam("accion");
            if ($id) :
                $unaPublicidad = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_Publicidad", $id);
                if ($unaPublicidad && $accion == "eliminar") :
                    $this->_referenciasDao->eliminar("Doctrine_Model_Entities_Publicidad", $unaPublicidad);
                    unserialize($unaPublicidad);
                    $unaPublicidad = new Doctrine_Model_Entities_TipoInforme();
                    $unaPublicidad->setVisible(1);
                endif;
            endif;
        endif;
        
        $this->view->tiposInforme = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_TipoInforme");
        $this->view->unTipoInforme = $unTipoInforme;
        
        $this->view->publicidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Publicidad");
        $this->view->unaPublicidad = $unaPublicidad;
        
        $this->view->localidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Localidad");
        $this->view->unaLocalidad = $unaLocalidad;
        
        $this->view->nacionalidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Nacionalidad");
        $this->view->unaNacionalidad = $unaNacionalidad;
        
        $this->render("tablas");
    }
    
    public function localidadAction(){
        
        $this->view->tab_activo = "localidades";
        
        $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
        $unTipoInforme->setVisible(1);
        $unaPublicidad = new Doctrine_Model_Entities_Publicidad();
        $unaPublicidad->setVisible(1);
        $unaLocalidad = new Doctrine_Model_Entities_Localidad();
        $unaLocalidad->setVisible(1);
        $unaNacionalidad = new Doctrine_Model_Entities_Nacionalidad();
        $unaNacionalidad->setVisible(1);
        
        if ($this->getRequest()->isPost()) :
            $id = $this->getRequest()->getParam("localidad_id");
            $descripcion = $this->getRequest()->getParam("localidad_descripcion");
            $partido_id = $this->getRequest()->getParam("localidad_partido_id");
            $cod_postal = $this->getRequest()->getParam("codigo_postal");
            $visible = 0;
            if ($this->getRequest()->getParam("localidad_visible"))
                $visible = 1;
            
            if ($id) :
                /* EDITAR */
                $unaLocalidad = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_Localidad", $id);  
            endif;
            
            $unaLocalidad->setDescripcion($descripcion);
            $unaLocalidad->setVisible($visible);
            $unaLocalidad->setPartidoId($partido_id);
            $unaLocalidad->setCodigoPostal($cod_postal);

            if ($this->_referenciasDao->guardar($unaLocalidad)) :
                if ($id) :
                    $this->_flashMessenger->addSuccess("Actualizado");
                else :
                    $this->_flashMessenger->addSuccess("Agregado");
                endif;
            else :
                $this->_flashMessenger->addError('Error');
            endif;
        else :
            $id = $this->getRequest()->getParam("localidad_id");
            $accion = $this->getRequest()->getParam("accion");
            if ($id) :
                $unaLocalidad = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_Localidad", $id);
                if ($unaLocalidad && $accion == "eliminar") :
                    $this->_referenciasDao->eliminar("Doctrine_Model_Entities_Localidad", $unaLocalidad);
                    unserialize($unaLocalidad);
                    $unaLocalidad = new Doctrine_Model_Entities_TipoInforme();
                    $unaLocalidad->setVisible(1);
                endif;
            endif;
        endif;
        
        $this->view->tiposInforme = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_TipoInforme");
        $this->view->unTipoInforme = $unTipoInforme;
        
        $this->view->publicidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Publicidad");
        $this->view->unaPublicidad = $unaPublicidad;
        
        $this->view->localidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Localidad");
        $this->view->unaLocalidad = $unaLocalidad;
        
        $this->view->nacionalidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Nacionalidad");
        $this->view->unaNacionalidad = $unaNacionalidad;
        
        $this->render("tablas");
    }
    
    public function nacionalidadAction(){
        
        $this->view->tab_activo = "nacionalidades";
        
        $unTipoInforme = new Doctrine_Model_Entities_TipoInforme();
        $unTipoInforme->setVisible(1);
        $unaPublicidad = new Doctrine_Model_Entities_Publicidad();
        $unaPublicidad->setVisible(1);        
        $unaLocalidad = new Doctrine_Model_Entities_Localidad();
        $unaLocalidad->setVisible(1);
        $unaNacionalidad = new Doctrine_Model_Entities_Nacionalidad();
        $unaNacionalidad->setVisible(1);
        
        if ($this->getRequest()->isPost()) :
            $id = $this->getRequest()->getParam("nacionalidad_id");
            $descripcion = $this->getRequest()->getParam("nacionalidad_descripcion");
            $visible = 0;
            if ($this->getRequest()->getParam("nacionalidad_visible"))
                $visible = 1;
            
            if ($id) :
                /* EDITAR */
                $unaNacionalidad = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_Nacionalidad", $id);                
            endif;
            
            $unaNacionalidad->setDescripcion($descripcion);
            $unaNacionalidad->setVisible($visible);

            if ($this->_referenciasDao->guardar($unaNacionalidad)) :
                if ($id) :
                    $this->_flashMessenger->addSuccess("Actualizado");
                else :
                    $this->_flashMessenger->addSuccess("Agregado");
                endif;
            else :
                $this->_flashMessenger->addError('Error');
            endif;
        else :
            $id = $this->getRequest()->getParam("nacionalidad_id");
            $accion = $this->getRequest()->getParam("accion");
            if ($id) :
                $unaNacionalidad = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_Nacionalidad", $id);
                if ($unaNacionalidad && $accion == "eliminar") :
                    $this->_referenciasDao->eliminar("Doctrine_Model_Entities_Nacionalidad", $unaNacionalidad);
                    unserialize($unaNacionalidad);
                    $unaNacionalidad = new Doctrine_Model_Entities_TipoInforme();
                    $unaNacionalidad->setVisible(1);
                endif;
            endif;
        endif;
        
        $this->view->tiposInforme = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_TipoInforme");
        $this->view->unTipoInforme = $unTipoInforme;
        
        $this->view->publicidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Publicidad");
        $this->view->unaPublicidad = $unaPublicidad;
        
        $this->view->localidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Localidad");
        $this->view->unaLocalidad = $unaLocalidad;
        
        $this->view->nacionalidades = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_Nacionalidad");
        $this->view->unaNacionalidad = $unaNacionalidad;
        
        $this->render("tablas");
        
    }

    public function categoriamovimientoAction() {
        
        $this->view->tab_activo = "categorias";
        
        $unaCategoriaMovimiento = new Doctrine_Model_Entities_CategoriaMovimiento();
        $unaCategoriaMovimiento->setVisible(1);
        
        if ($this->getRequest()->isPost()) {
            $id = $this->getRequest()->getParam("id");
            $descripcion = $this->getRequest()->getParam("categoria_movimiento_descripcion");
            $visible = 0;
            if ($this->getRequest()->getParam("categoria_movimiento_visible"))
                $visible = 1;
            
            $soloNegocios = 0;
            if ($this->getRequest()->getParam('categoria_movimiento_solonegocios' ))
                 $soloNegocios= 1;
            
            if ($id) :
                /* EDITAR */
                $unaCategoriaMovimiento = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_CategoriaMovimiento", $id);                
            endif;
           
            $unaCategoriaMovimiento->setDescripcion($descripcion);
            $unaCategoriaMovimiento->setVisible($visible);
            $unaCategoriaMovimiento->setSoloNegocios($soloNegocios);
            if ( empty($id)){
                if ($this->_referenciasDao->existe("Doctrine_Model_Entities_CategoriaMovimiento",$descripcion)){
                    $this->_flashMessenger->addSuccess("La descripcion ya existe");
                    } else {
                        if ($this->_referenciasDao->guardar($unaCategoriaMovimiento)) :
                            $this->_flashMessenger->addSuccess("Agregado");
                        else :
                            $this->_flashMessenger->addError('Error');
                        endif;
                    }
            } else {
                 if ($this->_referenciasDao->guardar($unaCategoriaMovimiento)) {
                        $this->_flashMessenger->addSuccess("Actualizado");
                   } 
            }
        } else {
            $id = $this->getRequest()->getParam("id");
            $accion = $this->getRequest()->getParam("accion");
            if ($id) :
                $unaCategoriaMovimiento = $this->_referenciasDao->obtenerPorId("Doctrine_Model_Entities_CategoriaMovimiento", $id);
                if ($unaCategoriaMovimiento && $accion == "eliminar") :
                    $this->_referenciasDao->eliminar("Doctrine_Model_Entities_CategoriaMovimiento", $unaCategoriaMovimiento);
                    unserialize($unaCategoriaMovimiento);
                    $unaCategoriaMovimiento = new Doctrine_Model_Entities_CategoriaMovimiento();
                    $unaCategoriaMovimiento->setVisible(1);
                endif;
            endif;
        }

        $this->view->categoriaMovimientos = $this->_referenciasDao->obtenerTodos("Doctrine_Model_Entities_CategoriaMovimiento");
        $this->view->unaCategoriaMovimiento = $unaCategoriaMovimiento;
        
        $this->render("tablas");
        
    }
    
}
